﻿// 266. 四数之和 4 Values whose Sum is 0（挑战程序设计竞赛）.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#define  _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <unordered_map>

using namespace std;



/*


https://www.papamelon.com/problem/266



给定各有 n 个整数的四个数列 A, B, C, D

要从每个数列中各取一个数, 使四个数的和为 0。

求出这样的组合的个数。当一个数列有多个相同的数字时, 把它们当做不同的数字看待。

提示
请注意本题的 C/C++ 时间限制给到了 15000 ms，其他语言给到了 30000 ms

输入
第一行有一个数字n
接下来 n 行，每行 4 个整数,分别表示数组 A, B, C, D的值
1≤n≤4000,1≤val≤2^28 , valval 表示每个数组里面的元素
输出
输出一个整数, 表示和为 0 的组合的个数
样例 1
输入
6
-45 22 42 -16
-41 -27 56 30
-36 53 -37 77
-36 30 -75 -46
26 -38 -10 62
-32 -54 -6 45
输出
5
*/


const int N = 4010;
int A[N], B[N], C[N], D[N];
int n;
int ans;
unordered_map<long long, int> MA;
int main()
{
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		//cin >> A[i] >> B[i] >> C[i] >> D[i];
		scanf("%d%d%d%d", &A[i], &B[i], &C[i], &D[i]);
	}

	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			MA[A[i] + B[j]]++;
		}
	}

	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			long long val = C[i] + D[j];
			if (MA.count(-val) != 0) { ans += MA[-val]; }
		}
	}

	printf("%d\n", ans);

	return 0;
}
